IntelliJ Platform/Notebook Disposable.ipynb (75 lines of code) (raw):

{ "cells": [ { "metadata": {}, "cell_type": "markdown", "source": [ "# Notebook Disposable\n", "\n", "This notebook presents how to use the `notebookDisposable` notebook variable for disposing elements i.e. when restarting the kernel." ] }, { "metadata": {}, "cell_type": "code", "source": "%use intellij-platform", "outputs": [], "execution_count": null }, { "metadata": {}, "cell_type": "code", "source": [ "import com.intellij.icons.AllIcons\n", "import com.intellij.openapi.application.runInEdt\n", "import com.intellij.openapi.util.Disposer\n", "import com.intellij.openapi.wm.ToolWindowManager\n", "\n", "val project = currentProject() ?: error(\"Project not found\")\n", "val toolWindowManager = ToolWindowManager.getInstance(project)\n", "\n", "runInEdt {\n", " val toolWindow = toolWindowManager.getToolWindow(\"My Tool Window\")\n", " ?: toolWindowManager.registerToolWindow(\"My Tool Window\") {\n", " icon = AllIcons.General.Error\n", " }\n", "\n", " Disposer.register(notebookDisposable) {\n", " toolWindow.remove()\n", " }\n", "}" ], "outputs": [], "execution_count": null }, { "metadata": {}, "cell_type": "markdown", "source": [ "After running the cell above, you should see a tool window with the error icon in the tool window strip.\n", "When you restart the kernel, the tool window will be removed as well." ] } ], "metadata": { "kernelspec": { "display_name": "Kotlin", "language": "kotlin", "name": "kotlin" }, "language_info": { "name": "kotlin", "version": "1.9.23", "mimetype": "text/x-kotlin", "file_extension": ".kt", "pygments_lexer": "kotlin", "codemirror_mode": "text/x-kotlin", "nbconvert_exporter": "" }, "ktnbPluginMetadata": { "sessionRunMode": "IDE_PROCESS" } }, "nbformat": 4, "nbformat_minor": 0 }